Enhanced reliability for satellite data delivery

ABSTRACT

A media device may be configured for receiving data from one or more satellites. The media device may include one or more processors and one or more storage devices. A first tuner of a media device may tune to a first data stream that came from a first satellite transponder. A second tuner of the media device may tune to a second data stream that came from a second satellite transponder. The first data stream and the second data stream may be derived from source data based at least in part on a data distribution scheme. The data distribution scheme may include distributing at least portions of the source data with the first data stream and the second data stream. The first data stream and/or the second data stream may be processed to store and/or output for presentation content.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. Ser. No. 14/923,576, filed onOct. 27, 2015, entitled, “ENHANCED RELIABILITY FOR SATELLITE DATADELIVERY,” which is a continuation of U.S. Ser. No. 13/776,726, filed onFeb. 26, 2013, entitled, “ENHANCED RELIABILITY FOR SATELLITE DATADELIVERY,” which claims the benefit of U.S. Provisional Application No.61/746,531 filed on Dec. 27, 2012, and titled “ENHANCED RELIABILITY FORSATELLITE DATA DELIVERY,” the entire contents of each of which arehereby incorporated by reference for all purposes.

TECHNICAL FIELD

This disclosure relates to apparatus and methods of content display, andparticularly to super-reliable satellite data delivery.

BACKGROUND

Data delivery via satellite can suffer from outages due to variousadverse conditions. For example, adverse weather, such as heavy rain,can disrupt data delivery and compromise reliability of data delivery.This disruption is known as “rain fade.” The disruption may last onlyfor a short time in certain cases. Nonetheless, even a short disruptioncan be undesirable, particularly for mission-critical or otherwiseimportant data. For mission-critical or otherwise important data, amethod of ensuring much higher data reliability is needed.

Thus, there is a need for television systems that address the foregoingproblem to provide users with better experiences. This and other needsare addressed by the present disclosure.

SUMMARY

Various methods, systems, and apparatus are disclosed for implementing amedia device for content-based highlight recording of televisionprogramming.

In one aspect, a media device may be configured for receiving data fromone or more satellites. The media device may include one or moreprocessors and one or more storage devices coupled to the one or moreprocessors and configured to store instructions to cause the one or moreprocessors to one or more of: tune, by a first tuner of a media device(or a set-top box), to a first data stream that came from a firstsatellite transponder; tune, by a second tuner of the set-top box, to asecond data stream that came from a second satellite transponder;wherein the first data stream and the second data stream were derivedfrom source data based at least in part on a data distribution scheme,wherein the data distribution scheme comprises distributing at leastportions of the source data with the first data stream and the seconddata stream; and process the first data stream and/or the second datastream to store and/or output for presentation content.

In another aspect, a method for receiving data from one or moresatellites may include one or more of the following steps. A first tunerof a set-top box may be tuned to a first data stream that came from afirst satellite transponder. A second tuner of the set-top box may betuned to a second data stream that came from a second satellitetransponder. The first data stream and the second data stream may bederived from source data based at least in part on a data distributionscheme. The data distribution scheme may include distributing at leastportions of the source data with the first data stream and the seconddata stream. The first data stream and/or the second data stream may beprocessed to store and/or output for presentation content.

In yet another aspect, a system for receiving data from one or moresatellites is provide. The system may include one or more processors andmemory communicatively coupled with, and readable by, the one or moreprocessors, the memory having stored therein processor-readableinstructions, which, when executed by the one or more processors, maycause the one or more processors to perform a method. A first datastream that came from a first satellite transponder may be tuned to. Asecond data stream that came from a second satellite transponder may betuned to. The first data stream and the second data stream may bederived from source data based at least in part on a data distributionscheme. The data distribution scheme may include distributing at leastportions of the source data with the first data stream and the seconddata stream. The first data stream and/or the second data stream may beprocessed to store and/or output for presentation content.

Further areas of applicability of the present disclosure will becomeapparent from the detailed description provided hereinafter. It shouldbe understood that the detailed description and specific examples, whileindicating various embodiments, are intended for purposes ofillustration only and are not intended to necessarily limit the scope ofthe disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

A further understanding of the nature and advantages of variousembodiments may be realized by reference to the following figures inconjunction with the description of certain embodiments presentedherein. However, the appended figures should not be seen as limiting ordefining the present disclosure.

FIG. 1 illustrates a satellite television distribution system, inaccordance with certain embodiments of the present disclosure.

FIG. 2 illustrates a satellite television distribution system, inaccordance with certain embodiments of the present disclosure.

FIG. 3 illustrates a satellite television distribution system, inaccordance with certain embodiments of the present disclosure.

FIG. 4 illustrates a television service provider data handling system,in accordance with certain embodiments of the present disclosure.

FIG. 5 illustrates a data transmission for one possible datadistribution scheme where data may be segmented such that differentsegments are provided for different transponder data streams, inaccordance with certain embodiments of the present disclosure.

FIG. 6 illustrates a data transmission for one possible datadistribution scheme where segmented data may be replicated to provideredundancy, in accordance with certain embodiments of the presentdisclosure.

FIG. 7 illustrates a data transmission for one possible datadistribution scheme where redundancy information may be alternatinglyinterleaved among segmented data to provide redundancy, in accordancewith certain embodiments of the present disclosure.

FIG. 8 illustrates a data transmission for one possible datadistribution scheme where double redundancy information may bealternatingly interleaved among segmented data to provide redundancy.

FIG. 9 illustrates a simplified diagram of a set-top box, in accordancewith certain embodiments of the present disclosure.

FIG. 10 illustrates a diagram of a computer system, in accordance withcertain embodiments of the present disclosure.

In the appended figures, similar components or features may have thesame reference label. Further, various components of the same type maybe distinguished by following the reference label by a dash and a secondlabel that distinguishes among the similar components. If only the firstreference label is used in the specification, the description isapplicable to any one of the similar components having the same firstreference label irrespective of the second reference label.

DETAILED DESCRIPTION

The subject matter of embodiments of the present invention is describedhere with specificity to meet statutory requirements, but thisdescription is not necessarily intended to limit the scope of theclaims. The claimed subject matter may be embodied in other ways, mayinclude different elements or steps, and may be used in conjunction withother existing or future technologies. This description should not beinterpreted as implying any particular order or arrangement among orbetween various steps or elements except when the order of individualsteps or arrangement of elements is explicitly described.

Although embodiments detailed herein may be directed toward controllingtelevision-based equipment, the principles easily can be extended toother types of content and devices, such as computer equipment, handheldelectronic devices, and the like. In addition, the terms “television,”“television service,” and “television programming” can includetraditional television programming, such as linear television programs,as well as other types of audio, video and/or audio/video content, suchas on-demand video content, streaming video content and the likedelivered via any type of content delivery systems, such as a cable,satellite, cellular/wireless, Internet/IP and/or any other contentdelivery technology or system currently known or hereafter developed.Furthermore, embodiments herein describe set-top boxes and/or otherdevices being connected with a television or other device having anelectronic display. However, features disclosed herein can also beincorporated into the device having the electronic display, such as atelevision with an integrated cable, satellite or IPTV receiver.

Various methods, systems, and computer products are disclosed forsuper-reliable data delivery. Data distribution may be implemented invarious ways according to various embodiments. Certain data distributionschemes may provide greater levels of redundancy of data. Certain datadistribution schemes may provide greater levels of performance. Certaindata distribution schemes may provide greater levels of availability.Certain data distribution schemes may provide greater levels ofcapacity. Certain embodiments may provide the combination of betterbandwidth and reliability of losing an entire satellite and/ortransponder and still being able to recover the data. It should beunderstood that, while the data distribution schemes according variousembodiments are described in reference to multiple satellites, certainembodiments may implement the data distribution schemes with multipletransponders of the same satellite, or a combination of multipletransponders per satellite and multiple satellites.

FIG. 1 illustrates an embodiment of a satellite television distributionsystem 100. Satellite television distribution system 100 may include:television service provider system 110, satellite transmitter equipment120, satellites 130, satellite dish 140, set-top box 150, and television160. Alternate embodiments of satellite television distribution system100 may include fewer or greater numbers of components. While only onesatellite dish 140, set-top box 150, and television 160 (collectivelyreferred to as “user equipment”) are illustrated, it should beunderstood that multiple (e.g., tens, thousands, millions) instances ofuser equipment may receive television signals from satellites 130. Forexample, a particular person may have user equipment at multiple homesor other locations.

Television service provider system 110 and satellite transmitterequipment 120 may be operated by a television service provider. Atelevision service provider may distribute television channels,on-demand programming, programming information, and/or other services tousers via satellite. Television service provider system 110 may receivefeeds of one or more television channels from various sources. Suchtelevision channels may include multiple television channels thatcontain the same content (but may be in different formats, such ashigh-definition and standard-definition). To distribute such televisionchannels to users, feeds of the television channels may be relayed touser equipment via one or more satellites in the form of transponderstreams. Satellite transmitter equipment 120 may be used to transmit afeed of one or more television channels from television service providersystem 110 to one or more satellites 130. While a single televisionservice provider system 110 and satellite transmitter equipment 120 areillustrated as part of satellite television distribution system 100, itshould be understood that multiple instances of transmitter equipmentmay be used, possibly scattered geographically to communicate withsatellites 130. Such multiple instances satellite transmitting equipmentmay communicate with the same or with different satellites. Differenttelevision channels may be transmitted to satellites 130 from differentinstances of transmitting equipment. For instance, a different satellitedish of transmitting equipment 120 may be used for communication withsatellites in different orbital slots.

Satellites 130 may be configured to receive signals, such as streams oftelevision channels, from one or more satellite uplinks such assatellite transmitter equipment 120. Satellites 130 may relay receivedsignals from satellite transmitter equipment 120 (and/or other satellitetransmitter equipment) to multiple instances of user equipment viatransponder streams. Different frequencies may be used for uplinksignals 170 from transponder stream 180. Satellites 130 may be ingeosynchronous orbit. Each satellite 130 may be in a different orbitalslot, such that the signal path between each satellite, uplink stations,and user equipment vary. Multiple satellites 130 may be used to relaytelevision channels from television service provider system 110 tosatellite dish 140. Different television channels may be carried usingdifferent satellites. Different television channels may also be carriedusing different transponders of the same satellite; thus, suchtelevision channels may be transmitted at different frequencies and/ordifferent frequency ranges. As an example, a first and second televisionchannel may be carried on a first transponder of satellite 130-1. Athird, fourth, and fifth television channel may be carried using adifferent satellite or a different transponder of the same satelliterelaying the transponder stream at a different frequency. By way ofexample without limitation, a transponder stream transmitted by aparticular transponder of a particular satellite may include a finitenumber of television channels, such as seven. Accordingly, if manytelevision channels are to be made available for viewing and recording,multiple transponder streams may be necessary to transmit all of thetelevision channels to the instances of user equipment.

Satellite dish 140 may be a piece of user equipment that is used toreceive transponder streams from one or more satellites, such assatellites 130. Satellite dish 140 may be provided to a user for use ona subscription basis to receive television channels provided by thetelevision service provider system 110, transmitter equipment 120,and/or satellites 130. Satellite dish 140 may be configured to receivetransponder streams from multiple satellites and/or multipletransponders of the same satellite. Satellite dish 140 may be configuredto receive television channels via transponder streams on multiplefrequencies. Based on the characteristics of set-top box (STB) 150and/or satellite dish 140, it may only be possible to capturetransponder streams from a limited number of transponders concurrently.For example, a tuner of STB 150 may only be able to tune to a singletransponder stream from a transponder of a single satellite at a time.

In communication with satellite dish 140, may be one or more sets ofreceiving equipment. Receiving equipment may be configured to decodesignals received from satellites 130 via satellite dish 140 for displayon a display device, such as television 160. Receiving equipment may beincorporated as part of a television or may be part of a separatedevice, commonly referred to as a set-top box (STB). Receiving equipmentmay include a satellite tuner configured to receive television channelsvia a satellite. In FIG. 1, receiving equipment is present in the formof set-top box 150. As such, set-top box 150 may decode signals receivedvia satellite dish 140 and provide an output to television 160.

Television 160 may be used to present video and/or audio decoded byset-top box 150. Set-top box 150 may also output a display of one ormore interfaces to television 160, such as an electronic programmingguide (EPG). In some embodiments, a display device other than atelevision may be used.

Uplink signal 170-1 represents a signal between transmitter equipment120 and satellite 130-1. Uplink signal 170-2 represents a signal betweentransmitter equipment 120 and satellite 130-2. Each of uplink signals170 may contain streams of one or more different television channels.For example, uplink signal 170-1 may contain a certain group oftelevision channels, while uplink signal 170-2 contains a differentgrouping of television channels. Each of these television channels maybe scrambled such that unauthorized persons are prevented from accessingthe television channels.

Transponder stream 180-1 represents a signal between satellite 130-1 andsatellite dish 140. Transponder stream 180-2 represents a signal pathbetween satellite 130-2 and satellite dish 140. Each of transponderstreams 180 may contain one or more different television channels in theform of transponder streams, which may be at least partially scrambled.For example, transponder stream 180-1 may include a first transponderstream containing a first group of television channels, whiletransponder stream 180-2 may include a second transponder streamcontaining a different group of television channels. A satellite maytransmit multiple transponder streams to user equipment. For examplewithout limitation, a typical satellite may relay 32 transponder streamsvia corresponding transponders to user equipment. Further, spot beamsare possible. For example, a satellite may be able to transmit atransponder stream to a particular geographic region (e.g., todistribute local television channels to the relevant market). Differenttelevision channels may be transmitted using the same frequency of thetransponder stream to a different geographic region.

FIG. 1 illustrates transponder stream 180-1 and transponder stream 180-2being received by satellite dish 140. For a first group of televisionchannels, satellite dish 140 may receive a transponder stream oftransponder stream 180-1; for a second group of channels, a transponderstream of transponder stream 180-2 may be received. STB 150 may decodethe received transponder stream. As such, depending on which televisionchannel(s) are desired, a transponder stream from a different satellite(or a different transponder of the same satellite) may be accessed anddecoded by STB 150. Further, while four satellites are depicted insatellite television distribution system 100, in other embodimentsgreater or fewer numbers of satellites may be present for receiving andtransmitting transponder streams to user equipment.

Network 190 may serve as a secondary communication channel betweentelevision service provider system 110 and set-top box 150. Whilesatellite dish 140 provides a first communication channel withtelevision service provider system 110 by receiving television channelsand possibly other data from satellites 130, a second communicationchannel between set-top box 150 and television service provider system110 allows for data to be transmitted by set-top box 150 to thetelevision service provider and/or data to be transmitted to set-top box150. Via such a secondary communication channel, bidirectional exchangeof data may occur. Network 190 may be separate from the satellite-basedtelevision distribution system that relies on satellites 130. Data fromthe STB may be transmitted to television service provider system 110 vianetwork 190. Data may also be transmitted from television serviceprovider system 110 to STB 150 via network 190. Network 190 mayrepresent one or more networks, such as the Internet and/or some othernetwork, such as a home WiFi network or modem. While audio and videoservices may be provided to STB 150 via satellites 130, feedback fromSTB 150 to television service provider system 110 may be transmitted vianetwork 190. Not all STBs may be able to communicate via network 190.For example, even if an STB is capable of communicating using network190, communication using network 190 may require that the user has anactive account with an internet service provider. Accordingly, some STBsmay only be able to receive data from satellites 130 via receivingequipment such as satellite dish 140. In other situations, while a usermay have an active ISP account, such as via a fiber, cable, or DSLinternet connection, equipment failure may occur. For instance, a routerthrough which STB 150 uses to connect to network 190 may fail or be inneed of resetting.

FIG. 1 illustrates an example of a satellite-based television channeldistribution system. It should be understood that at least some of theaspects of such a system may be similar to a cable televisiondistribution system. For example, in a cable television system, ratherthan using satellite transponders, multiple RF channels on a cable maybe used to transmit streams of television channels. As such, aspectsdetailed herein may be applicable to cable television distributionsystems. While FIG. 1 illustrates a single STB 150 in communication withtelevision service provider system 110, it should be understood thatmany STBs may be in communication with television service providersystem 110.

FIG. 2 illustrates an embodiment of a satellite television distributionsystem 200, in accordance with certain embodiments of the presentdisclosure. As depicted, weather may interfere with reception of one ormore television channels. Satellite television system 200 may representsatellite television system 100 of FIG. 1 with the addition of arainstorm 210 obstructing satellite dish 140 from adequately receivingdownlink signal 180-1. In FIG. 2, a rainstorm is used as an example ofone type of occurrence that may prevent one or more television channelsfrom being received successfully by user equipment (satellite dish 140,set-top box 150, and/or television 160). Other occurrences that mayprevent one or more television channels from being successfully receivedby user equipment may include: a satellite outage, an outage of one ormore particular transponders of a satellite, an outage at uplink station110, an outage at satellite uplink 120, an uplink signal not beingreceived by the proper satellite of satellites 130, and/or thetelevision channel not being initially received by uplink station 110.

In the example of FIG. 2, due to the current location of rainstorm 210,satellite dish 140 is obstructed from successfully receiving downlinksignal 180-1. As such, television channels transmitted via satellite130-1 via downlink signal 180-1 may not be successfully received.Likewise, the satellite 130-2 may not be positioned for a successfultransmission, with the rainstorm 210 obstructing the path from thesatellite 130-2 to the satellite dish 140. The satellite 130-3, however,may be well positioned for successful transmission, not being obstructedby the rainstorm 210; television channels transmitted via satellite130-3 via downlink signal 180-2 may be successfully received. Therefore,with respect to television 160, one or more channels from satellites130-1, 130-2 (or specific transponders thereof) may be unavailable;channels from other satellites (or other transponders thereof) mayremain available. As rainstorm 210 moves, downlink signal 180-1 mayagain become available; another downlink signal, such as downlink signal180-2, may become unavailable.

However, the satellite television system 200 may be configured forimplementing one or more satellite data distribution schemes, inaccordance with certain embodiments of the present disclosure. Invarious embodiments, a set-top box may have access to two, three, four,or more satellites 130—any suitable number of satellites. Similarly, invarious embodiments, a set-top box may have access to any suitablenumber of transponders. The satellites 130 and/or transponders may becoordinated to serve in combination as a data delivery system thatprovides greater reliability. In various embodiments, data may beseparated, replicated, and distributed across two or more of thesatellites 130 and/or transponders.

Data distribution may be implemented in various ways according tovarious embodiments. Certain data distribution schemes may providegreater levels of redundancy of data. Certain data distribution schemesmay provide greater levels of performance. Certain data distributionschemes may provide greater levels of availability. Certain datadistribution schemes may provide greater levels of capacity. Certainembodiments may provide the combination of better bandwidth andreliability of losing an entire satellite and/or transponder and stillbeing able to recover the data. It should be understood that, while thedata distribution schemes according various embodiments are described inreference to multiple satellites, certain embodiments may implement thedata distribution schemes with multiple transponders of the samesatellite, or a combination of multiple transponders per satellite andmultiple satellites.

In certain data distribution schemes, duplicated data may be splitbetween two satellites 130. A pair of uplink signals 170 may eachcontain a duplicate stream of one or more television channels. Forexample, uplink signal 170-1 may contain a certain group of televisionchannels, while uplink signal 170-2 contains another instance of thatgroup of television channels. Accordingly, each of two satellites 130may receive a complete mirrored set of data. Therefore, particularend-user equipment may be serviced by either or both of the satellites130. Thus, in one example scenario, due to the current location ofrainstorm 210, satellite dish 140 may be obstructed from successfullyreceiving downlink signal 180-1 from the satellite 130-1. However, asthe satellite 130-2 may transceive a complete mirrored set of the data,the satellite 130-2 may service the satellite dish 140 via downlinksignal 180-2 with the same channels that would normally be availablewith the downlink signal 180-1.

In some embodiments, as depicted, multiple satellite uplinks 120 may beemployed to separately provide the duplicate streams. Such aconfiguration may lend greater reliability to the system. However, inother embodiments, a single satellite uplink 120 may be employed toprovide the duplicate streams.

Data distribution based on replicated data streams may be extended tothree, four, or more replicated streams. FIG. 3 illustrates anembodiment of a satellite television distribution system 300, inaccordance with certain embodiments of the present disclosure. In somedata distribution schemes, data may be replicated and split amongstthree or more satellites 130. In certain embodiments, signals 170, 180may correspond to television signals, data signals, and/ormission-critical data. Three or more uplink signals 170 may each containa replicated stream of one or more television channels. For example,uplink signals 170-1, -2, -3 may each contain an instance of a certaingroup of television channels. Accordingly, each of the three or moresatellites 130 may receive a complete mirrored set of the data.Therefore, particular end-user equipment may be serviced by any one orcombination of the three or more satellites 130. Thus, in one examplescenario, due to the current location of rainstorm 210, satellite dish140 may be obstructed from successfully receiving downlink signals fromthe satellites 130-1 and 130-2, but, as the satellite 130-3 may possessa complete mirrored set of the data, the satellite 130-3 service thesatellite dish 140 via downlink signal 180-3.

In some embodiments, multiple replicated downlink signals may bereceived or receivable by the set-top box 150 with satellite dish 140 atone time. In some embodiments, upon disruption of one downlink signal,the set-top box 150 with satellite dish 140 may be configured to tune toanother downlink signal from a different satellite. In some embodiments,an idle tuner may be identified and used for that purpose.

In some embodiments, communications between the set-top box 150 and thetelevision service provider system 110 after a downlink signal isdisrupted or otherwise not received by the set-top box 150. In someembodiments, if set-top box 150 is unable to successfully receive atelevision channel, a message may be transmitted to the televisionservice provider system 110. The television service provider system 110may receive such indications from multiple set-top boxes (or, moregenerally, receiving equipment). Such data may assist a televisionservice provider in identifying television channel outage areas due toweather or some other occurrence.

The television service provider system 110 could respond accordingly byimplementing a data distribution scheme responsive to a notification ofthe failure. In other embodiments, a data distribution scheme may beimplemented as a default and already be employed prior to any failure.For example, the television service provider system 110 may coordinateuplink signals to various satellites according to a data distributionscheme. In some embodiments, the television service provider system 110may direct the set-top box 150 to an alternative satellite 130 and/ortransponder. For example, the television service provider system 110 maysend a message, instructions, and/or other information via the network190 to the set-top box 150 so that the set-top box 150 may receive oneor more downlink signals from another satellite(s) and/or transponders.Such information may be provided by the television service providersystem 110 to multiple sets of receiving equipment, such as set-top box150. Such information may be provided to set-top box 150 as a push (amessage sent to set-top box 150 following the problem being detected) ora pull (a message sent to set-top box 150 upon receiving a communicationfrom set-top box 150). For example, in the case of a pull, a user mayattempt to tune to an unavailable channel. Information, if available,about the unavailable channel may be attempted to be retrieved byset-top box 150 from the television service provider system 110. Inother embodiments, the set-top box 150 may be pre-configured to tune toone or more secondary satellites 130 and/or transponders.

In certain data distribution schemes, sequential data may be logicallysegmented such that different segments are provided to multiplesatellites 130. The satellites 130, having the different segments mayprovide multiple transponder streams to the end-user equipmentsequentially or concurrently. Thus, in some embodiments, differenttransponder streams, each containing different segments, may be providedin parallel. This may provide greater throughput. This may providequicker data access, particularly with set-top boxes having severaltuners and demodulators available.

In some embodiments, sequential data segments may be alternately and/orregularly interleaved between/among multiple satellites 130 and/ortransponders. In some embodiments, sequential data segments may beinterleaved between/among multiple satellites 130 and/or transponderswith a round-robin approach. In some embodiments, the multiplesatellites 130 may be physically positioned in a sequential fashion, andsequential data segments may be alternately and/or regularly interleavedbetween/among the satellites 130 in a manner that corresponds to thephysical positioning sequence. In other embodiments, the interleaving ofsequential data segments may not correspond to the physical positioningsequence of the satellites 130. The interleaving of sequential datasegments according to various embodiments may allow for enhancedthroughput and data processing performance. Multiple satellites 130and/or transponders may communicate simultaneously with parallelcommunication. By way of example without limitation, two or more uplinksignals 170 may each contain a segmented sequential data correspondingto one or more television channels.

In some data distribution schemes, data may be split amongst multiplesatellites 130 with redundancy information such that if data is lostfrom any one satellite 130, there is enough information in the rest ofthe satellites 130 that the data is recoverable. The lost portion couldbe recreated so that the full data set is available. Distributing dataacross multiple satellites may ensure extremely high reliability withoutthe need to fully duplicate all the data for each satellite. Thus,certain embodiments may split data amongst multiple streams. For examplewithout limitation, data may be split amongst five different streams.Data may be recoverable from a subset of those streams, as long asnecessary information is conveyed with the subset of those streams. Forexample without limitation, in the case of five total streams, data maybe recoverable from a subset of four of out of the five streams.

In certain data distribution schemes, the sequential data segmentsinterleaved between/among multiple satellites 130 and/or transpondersmay additionally be replicated and distributed to additional satellites130 and/or transponders. By way of example without limitation,sequential data segments may be interleaved between the satellites 130-1and 130-2, and the sequential data segments may be mirrored to thesatellites 130-3 and 130-4. Accordingly, segmented data distributiontransmissions to the satellites 130-1 and 130-2 may allow for improvedperformance, while replicated segmented data distribution transmissionsto the satellites 130-3 and 130-4 may provide for fault tolerance.

FIG. 4 illustrates an embodiment of a television service provider datahandling system 400, in accordance with certain embodiments of thepresent disclosure. The data handling system 400 may be part oftelevision service provider system 110. As such, before data istransmitted to set-top boxes via satellite, the data handling system 400may be used to prepare data streams for data distribution schemesaccording to various embodiments. The data handling system 400 mayinclude: television programming and/or data module 410, control wordgenerator 420, security system 430, multiplexer 440, scrambling engine450, stream controller 440, stream data repository 468, and/ortransmitters 470.

In various embodiments, the television service provider data handlingsystem 400 may include any device or set of devices configured tocompute, process, organize, categorize, qualify, send, receive,retrieve, generate, convey, store, display, present, detect, handle,and/or use any form of information and/or data suitable for embodimentsdescribed herein. The television service provider data handling system400 could include a single computing device, a server, for example, ormultiple computing devices, which may be implemented in or with adistributed computing and/or cloud computing environment with aplurality of servers and cloud-implemented resources.

The data handling system 400 may receive data and/or television contentfrom one or more television channels from one source or multipledifferent sources, such as directly from the networks that produced thecontent on the television channels. Each television channel that is tobe transmitted on a particular transponder stream via a transponder of asatellite may be provided to multiplexer 440. Multiplexer 440 may createa digital stream of data packets containing the video, audio, and otherdata, such as entitlement control messages (ECMs), to be transmitted onthe transponder data stream. The data stream, which includes videoand/or audio data packets that are not scrambled, may be passed toscrambling engine 450. Scrambling engine 450 may use a control word toscramble video or audio present in a data packet. Some audio and videopackets may also pass through with no scrambling, if desired by thetelevision service provider.

Control word generator 420 may generate the control word that is used byscrambling engine 450 to scramble the video or audio present in the datapacket. Control words generated by control word generator 420 may bepassed to security system 430, which may be operated by the televisionservice provider or by a third-party security provider. The controlwords generated by control word generator 420 may be used by securitysystem 430 to generate an ECM. Each ECM may indicate two control words.The control words indicated may be the current control word being usedto scramble video and audio, and the control word that will next be usedto scramble video and audio. Security system 430 may output an ECM tomultiplexer 440 for transmission to subscribers' set-top boxes. Eachdata packet, whether it contains audio, video, an ECM, or some otherform of data, may be associated with a particular PID. This PID may beused by the set-top box in combination with the networking informationtable to determine which television channel the data contained withinthe data packet corresponds. Accordingly, the transponder data streamsmay contain scrambled video packet stream and audio packet stream andalso an encrypted ECM packet stream which contains the control wordsnecessary to descramble the scrambled video and audio packets.

The data handling system 400 may be configured for facilitating one ormore satellite data distribution schemes, in accordance with certainembodiments of the present disclosure. The data distribution controller460 may be configured to manage how data is separated, replicated,distributed, and/or otherwise prepared for two or more data streams. Thefunctions of the data distribution controller 460 may be implemented insoftware and/or hardware. In some embodiments, as depicted, the datadistribution controller 460 may be employed downstream with respect tocertain components, such as the scrambling engine 450; in alternativeembodiments, the data distribution controller 460 may be employedupstream with respect to certain components, such as the scramblingengine 450.

In some embodiments, the data distribution controller 460 may includeone or more replication controllers 462. The replication controller 462may be configured to replicate data for distribution with two or moreseparate data streams. The replication controller 462 may receive adigital stream of data packets containing the video, audio, and otherdata, replicate the digital stream components, and buffer the componentsfor transmission and/or further processing. In various embodiments, thereplication controller 462 may access data from the segmentationcontroller 464, such as segmented data sets, and/or from one or moredata repositories 468. Having replicated data, the replicationcontroller 462 may stage the identical data sets in one or more datarepositories 468, in some embodiments. In some embodiments, each set ofdata is stage in a separate repository 468. In some embodiments, theidentical data sets may be provided directly to the one or moretransmitters 470.

In some embodiments, the data distribution controller 460 may includeone or more segmentation controllers 464. The segmentation controller464 may be configured to logically segment the digital stream such thatdifferent segments are provided for different transponder data streams.The segmentation controller 464 may receive a digital stream of datapackets containing the video, audio, and other data, divide the digitalstream into components, and buffer the resultant components fortransmission and/or further processing. In some embodiments, thesegmentation controller 464 may stage the segmented data in one or morestream data repositories 468. In some embodiments, certain segmentedsets of data are segregated into certain repositories 468. In someembodiments, the segmented data may be provided directly to the one ormore transmitters 470. In some embodiments, segmentation controller 464may provide segmented data to multiple repositories 468 or transmitters470 simultaneously.

Various embodiments may employ various levels of division. For example,in some embodiments, the level of division may be packet-based,byte-based, and/or bit-based. Groupings of one or more packets may besegment for different routing. However, any suitable level of division,including any suitable segmentation size, may be employed. In someembodiments, the segmentation size may depend on the number oftransponder streams to be provided. In some embodiments, thesegmentation size may depend on other factors, such as storage,transfer, and/or processing constraints and/or performancecharacteristics. The segmented components may be distributed in the sameway for transmission with multiple transponder streams.

With the data distribution controller 460 having prepared data fortransponder data streams, two or more transponder data streams may betransmitted by one or more transmitters 470 to one or more satellites,such as satellite(s) 130, for relay to subscribers' set-top boxes, suchas STB 150. In some embodiments, multiple transponder data streams maybe transmitted by a single transmitter 470 to one or more satellites. Insome embodiments, multiple transmitters 470 may be used to transmit thetransponder data streams to one or more satellites. In some embodiments,a separate transmitter 470 per transponder stream may be used fortransmission. In various embodiments, data may be separated, replicated,and/or distributed across two or more of the satellites and/ortransponders.

For simplicity, the data handling system 400 has been reduced to a blockdiagram, other common components have been omitted. Further, somerouting between the various modules of the data handling system 400 hasbeen illustrated. Such illustration is for exemplary purposes only.Regardless of whether two modules are directly or indirectly connected,the modules may be able to communicate. Connections between modules areintended only to indicate possible common routing. It should beunderstood that the modules of the data handling system 400 may becombined into a fewer number of modules or divided into a greater numberof modules.

FIG. 5 illustrates an embodiment of data transmission 500 for onepossible data distribution scheme where data may be segmented such thatdifferent segments are provided for different transponder data streams,in accordance with certain embodiments of the present disclosure. InFIG. 5, transponder data streams 502 and 504 are illustrated. The firsttransponder data stream 502 may include video, audio, and/or other datacorresponding to a first segment 510-1. The second transponder datastream 504 may include video, audio, and/or other data corresponding toa second segment 510-2. The second segment 510-2 may sequentially and/orlogically follow the first segment 510-1. Likewise, the firsttransponder data stream 502 may include video, audio, and/or other datacorresponding to a third segment 510-3, and the second transponder datastream 504 may include video, audio, and/or other data corresponding toa fourth segment 510-4, sequential and/or logical order. As depicted,the interleaving may continue in the same manner up to segments 510-5,-6, -7, -8, and/or -n.

In some embodiments, a segment 510 may include one or more data packets.A data packet 520 illustrates an exemplary video or audio packet. Datapacket 520 may contain at least: sync 540, PID 530, scramble control550, and payload 560. The packet header of the packet (which may be anMPEG packet) may include sync 540 (which may be first), PID 530, andscramble control 550. As a reference, MPEG Systems Document 13818-1lists the specifications in detail. PID 530 may be a packet identifierused to indicate the particular television channel (or other type ofdata, such as an ECM) with which the data packet is associated. Multiplevideo packets associated with the same PID may be referred to as a videopacket stream, likewise for ECMs and audio packets.

A network information table (NIT) may store information useable by aset-top box to access various television channels. Information that maybe present in a NIT may include: television channel numbers, a satelliteidentifier, a frequency identifier, a transponder identifier, an ECMPID, one or more audio PIDs, and a video PID. (A second audio PID of achannel may correspond to a second audio program (SAP), such as inanother language.) In some embodiments, a NIT may be divided intoadditional tables. For example, rather than the specific audio PIDs andvideo PIDs being present in a NIT, a channel identifier may be presentwithin the NIT which may be used to lookup the audio PIDs and video PIDsin another table.

Table 1 provides a simplified example of a NIT for several televisionchannels. It should be understood that in other embodiments, many moretelevision channels may be represented in a NIT. NIT may be periodicallyupdated by a television service provider. As such, television channelsmay be reassigned to different satellites and/or transponders, and a STBmay be able to handle this reassignment as long as the NIT is updated.

TABLE 1 Channel Satellite Transponder ECM PID Audio PIDs Video PID 4 1 227 1001 1011 5 2 11 29 1002 1012 7 2 3 31 1003 1013 13 2 4 33 1003, 10041013

It should be understood that the values provided in Table 1 are forexample purposes only. Actual values, including how satellites andtransponders are identified, may vary. Additional information may alsobe stored in a NIT. Video and/or audio for different television channelson different transponders may have the same PIDs. Such televisionchannels may be differentiated based on which satellite and/ortransponder to which a tuner is tuned. Whether a user directly tunes toa television channel or a DVR tunes to a first television channel, a NITmay be used to determine the satellite, transponder, ECM PID (packetidentifier), audio PID, and video PID.

Referring to Table 1, if a particular television channel is attemptingto be accessed, such as television channel four, using the NIT, the STBmay be able to determine that a data packet with a PID of 1001corresponds to audio for channel 5, a data packet with a PID of 1011corresponds to video for channel 5, and a data packet with a PID of 27corresponds to an ECM for channel 5. Sync 540 may contain some number ofbits that are used to synchronize with the transport stream. Scramblecontrol 550 may serve to indicate which control word, if any, should beused to descramble payload 540. In some embodiments, scramble control550 may indicate either an even control word or an odd control word isto be used for descrambling. In a video or audio packet, payload 560 maycontain scrambled video or audio, respectively.

When a data packet is received that indicates a PID corresponding to anECM of a television channel desired to be recorded or viewed, theencrypted ECM in the payload may be passed to a smart card fordecryption. As the control word used for descrambling is changed overtime, so is the ECM. Each ECM may contain the currently used controlword for descrambling and the control word that will be used fordescrambling next. As such, an ECM may contain one control word that isthe same as the previous ECM and a new control word. For example, an ECMmay be represented in the format of (CW_(odd), CW_(even)). Whether theeven or the odd control word is used for descrambling may be based onthe scramble control identifier present within a data packet.

For the segment 510-1, an odd control word, CW₁, may be used fordescrambling. During this period, the same ECM may be received multipletimes (which may allow a set-top box that just tuned to the transponderstream to access television channels using the ECM's CWs as soon theECMs are decrypted and the CW recovered). This ECM may include encrypted(CW₁, CW₂). As such, the ECM indicates the current control word (CW₁)and the next control word to be used (CW₂). During a time periodcorresponding to segment 510-1, data packets containing scrambled datamay have scramble control bits that indicate the odd control word shouldbe used for descrambling, as such CW₁ may be used for descrambling.

Starting at the beginning of segment 510-2, the scramble control bits ofa data packet containing scrambled video or audio may indicate the evencontrol word should be used, as such CW₂, may be used for descrambling.A different ECM may be transmitted to the STB that indicates the currentcontrol word and the next control word to be used. This ECM may betransmitted periodically during a time period corresponding to segment510-2, such as every tenth of a second. In this instance for transponderstream 504, the ECM may indicate: (CW₄, CW₂). As such, the currentcontrol word CW₂ remains the same and continues to be used fordescrambling for segment 510-2 during which the data packets indicate,via their scramble control bits, that the even control word is to beused for descrambling. When decrypted, the new ECM indicates a new oddcontrol word, CW₄, which will be used for descrambling when the scramblecontrol bits indicate the odd control word should be used fordescrambling. This process may continue, with descrambling switchingbetween the even and odd control words as long as the STB is tuned tothe transponder streams. In some embodiments, a time period during whichany particular control word is used may be approximately 10 seconds.Such a time period may allow ample time for a smartcard to decrypt anECM such that the next control word to be used will be decrypted by thesmart card prior to data packets being received that indicate, via thescramble control bits, that this next control word is to be used fordescrambling.

Transponder data streams 502 and 504 may contain audio and video formultiple television channels, the packets of which may be indicated bydifferent PIDs. In some embodiments, a single CW may be used for adiscreet time period corresponding to a segment 510, however it shouldbe understood that different CWs may be decrypted from different ECMsfor different television channels. As such, certain CWs may be for one(or more than one) television channel, while other CWs (decrypted fromother ECMs) may be used for other television channels within the sametransponder stream.

While data packet 520 indicates only sync 540, PID 530, scramble control550, and payload 560 as parameters that are present, it should beunderstood that data may be present that corresponds to otherparameters, such as other header parameters. Further, based on theembodiment, the number of bits or bytes present in scramble control 550,payload 560, PID 530, sync 540 and/or any other parameter may vary. Theboxes present in data packet 520 are not intended to be representativeof a particular number of bits or bytes.

Referring again to FIG. 4, in some embodiments, segmented data may bereplicated to provide redundancy in addition to improved performance.For example, the replication controller 462 may replicate segmenteddata. The replicated segmented data may be provided for separatetransponder data streams. For example, segmented data may be providedfor two or more transponder data streams, and that segmented data may bereplicated to provide for two or more replicated transponder datastreams such that four or more total transponder data streams may beprovided by transmitter(s) 470.

FIG. 6 illustrates an embodiment of data transmission 600 for onepossible data distribution scheme where segmented data may be replicatedto provide redundancy, in accordance with certain embodiments of thepresent disclosure. In FIG. 6, transponder data streams 602 and 604 areillustrated. The transponder data streams 602 and 604 may correspond tothe transponder data streams 502 and 504 previously described withrespect to data transmission 500; and segments 610-1-610-n maycorrespond to the segments 510-1-510-n of the transponder data streams502 and 504. Thus, like the transponder data streams 502 and 504described previously, the transponder data streams 602 and 604illustrate embodiments where data may be segmented such that differentsegments are provided for different transponder data streams.Additionally, transponder data streams 602′ and 604′ mirror thetransponder data streams 602 and 604, with segments 610-1′-610-n′mirroring the segments 610-1-610-n. The mirroring of streams enhancesthe data distribution scheme by providing for fault tolerance. If one orboth of the transponder data streams 502 and 504 are lost, thetransponder data streams 602′ and 604′ provide redundancy of data tocover the loss.

Referring again to FIG. 4, in some embodiments, the data distributioncontroller 460 may include one or more redundancy information generators466. The redundancy information generator 466 may be configured toprovide redundancy information for multiple transponder data streamssuch that if one or more streams, or data therefrom, is lost, there isenough information in the rest of the streams so that the loss isrecoverable. Based on the redundancy information provided by theredundancy information generator 466, the lost portion could berecreated so that the full data set is available. If data is splitamongst five different streams, for example, data may be recoverablefrom a subset of those streams based on the redundancy informationprovided for the subset of those streams.

The redundancy information generator 466 may employ any suitabletechnique to generate redundancy information. For example withoutlimitation, the redundancy information may be based on parity. In someembodiments, parity data may be generated for the stream data based onthe Boolean XOR function in accordance with conventional techniques.Thus, for example, if data is split amongst five different streams andone stream is lost, data of the remaining streams may be combined withparity data to reconstruct the missing data using the Boolean XORfunction. In some embodiments, parity information may be generated basedon the segmentation of data provided with the segmentation controller464. In some embodiments, parity information may be generated for everyset of data that is segmented for distribution across X streams,considering X+1 total streams. For example, considering a total of fivestreams, parity information may be generated for every set of data thatis segmented for distribution to four streams. In some embodiments, allparity information may be distributed in a single stream. In someembodiments, sequential parity information may be alternatinglyinterleaved among all the streams. In various embodiments, parity may becalculated for any suitable level of division, including bit-level,byte-level, packet-level, and/or the like.

FIG. 7 illustrates an embodiment of data transmission 700 for onepossible data distribution scheme where redundancy information may bealternatingly interleaved among segmented data to provide redundancy, inaccordance with certain embodiments of the present disclosure. In FIG.7, transponder data streams 702, 704, 706, and 708 are illustrated. Thefirst transponder data stream 702 may include video, audio, and/or otherdata corresponding to a first segment 710-1. The second transponder datastream 704 may include video, audio, and/or other data corresponding toa second segment 710-2, where the second segment 710-2 may sequentiallyand/or logically follow the first segment 710-1. Likewise, the thirdtransponder data stream 706 may include video, audio, and/or other datacorresponding to a third segment 710-3, where the third segment 710-3may sequentially and/or logically follow the second segment 710-2. Thefourth transponder data stream 708 may include redundancy information710-4. The redundancy information 710-4 may be based on parity, in someembodiments. In some embodiments, the redundancy information 710-4 maybe derived at least in part from the segments 710-1, -2, and/or -3.Thus, for example, the redundancy information 710-4 may be available forregeneration of certain of the segments 710-1, -2, and/or -3 in theevent of a data loss for one of those segments.

The first transponder data stream 702 and second transponder data stream704 may further include video, audio, and/or other data corresponding tonext segments 710-5 and 710-6, where the segment 710-6 may sequentiallyand/or logically follow the segment 710-5. In some embodiments notdepicted, all redundancy information may be distributed in a singlestream. Thus, all redundancy information could be distributed in thetransponder data stream 708, for example. In other embodiments notdepicted, redundancy information may be distributed in a subset oftransponder streams. However, in some embodiments as depicted,sequential redundancy information may be alternatingly interleaved amongall the transponder data streams 702, 704, 706, and 708. Accordingly,the third transponder data stream 706 may further include redundancyinformation 710-7, and the fourth transponder data stream 708 mayfurther include video, audio, and/or other data corresponding to nextsegment 710-8, where the segment 710-8 may sequentially and/or logicallyfollow the segment 710-6. The redundancy information 710-7 may be basedon parity, in some embodiments. In some embodiments, the redundancyinformation 710-7 may be derived at least in part from the segments710-5, -6, and/or -8. Thus, for example, in various embodiments, theredundancy information 710-7 may be available for regeneration ofcertain of the segments 710-5, -6, and/or -8 in the event of a data lossfor one of those segments. As depicted, interleaving may continue in thesame manner for the transponder data streams 702, 704, 706, and 708 forsimilar segments 710-9 up to segment 710-n for any suitable extent.Accordingly, as data and redundancy information is split amongst thetransponder data streams 702, 704, 706, and 708, in the event of a lossof certain of those streams, or data thereof, missing data may bereconstructable from a subset of those streams based on redundancyinformation provided with the subset of those streams.

Some embodiments may employ data distribution schemes where redundancyinformation provided with segmented data, and one or more of thetransponder streams is replicated to provide additional redundancy. Themirroring of streams enhances the data distribution schemes by providingfor additional fault tolerance. In some embodiments, redundancyinformation may be interleaved with segmented data, and one or more ofthe transponder streams may be replicated. In some embodiments,redundancy information may be placed in one or more streams dedicated toconveying redundancy information, and one or more of the transponderstreams may be replicated. For example, only the one or more streamsdedicated to conveying redundancy information may be replicated, in someembodiments.

In some embodiments, double redundancy information may be generated andprovided with transponder streams to provide for additional faulttolerance. Providing double redundancy information may allow for thepossibility of recovering from a loss of multiple streams or datathereof. FIG. 8 illustrates an embodiment of data transmission 800 forone possible data distribution scheme where double redundancyinformation may be alternatingly interleaved among segmented data toprovide redundancy, in accordance with certain embodiments of thepresent disclosure. In FIG. 8, transponder data streams 802, 804, 806,808, and 810 are illustrated. The transponder data streams 802, 804,806, 808, and 810 may generally correspond to the transponder datastreams of the data transmission 700, but further include an additionaltransponder data stream, as illustrated by the transponder data stream810, and double redundancy information, as illustrated by segments812-4, -5, -8, -9, etc. Accordingly, the data transmission 800 may allowfor the possibility of recovering from a loss of multiple transponderdata streams 802, 804, 806, 808, and/or 810 or data thereof. Forexample, in various embodiments, the redundancy information 812-4 and812-5 may be derived at least in part from the segments 812-1, -2,and/or -3. In some embodiments, the redundancy information 812-4 and812-5 may each be duplicative of the other. Thus, for example, theredundancy information 812-4 and 812-5 may be available for regenerationof certain of the segments 813-1, -2, and/or -3 in the event of a dataloss for one or two of those segments. As depicted, interleaving maycontinue in the same manner for the transponder data streams 802, 804,806, 808, and 810 for similar segments up to segment 812-n for anysuitable extent. Accordingly, as data and redundancy information issplit amongst the transponder data streams 802, 804, 806, 808, and 810,in the event of a loss of certain of those streams, or data thereof,missing data may be reconstructable from a subset of those streams basedon redundancy information provided with the subset of those streams.

Accordingly, with the various data distribution schemes disclosedherein, two or more transponder data streams may be transmitted by oneor more transmitters 470 to one or more satellites, such as satellite(s)130, for relay to subscribers' set-top boxes, such as STB 150. Invarious embodiments, data may be separated, replicated, and/ordistributed across two or more of the satellites and/or transponders.While the preparation of the two or more transponder data streamsaccording to various data distribution schemes may be performed at thetelevision service provider system 110, the preparation may be performedby other similar systems or by the satellite(s) 130 implementing thefunctions of the data distribution controller 460, in variousalternative embodiments.

FIG. 9 illustrates a block diagram of an embodiment of a set-top box 900configured for facilitating one or more satellite data distributionschemes, in accordance with certain embodiments of the presentdisclosure. STB 900 may be set-top box 150 of FIG. 1, or may beincorporated as part of a television, such as television 160 of FIG. 1.STB 900 may include: processors 910, tuners 915, stream data controller960, network interface 920, non-transitory computer-readable storagemedium 925, television interface 935, networking information table (NIT)940, user interface 950, demultiplexer(s) 955, smart card(s) 962, and/ordescrambling engine(s) 965. In other embodiments of STB 900, smaller orgreater numbers of components may be present. Various embodiments of STB900 may include any suitable number of tuners 915 and attendantcomponents to facilitate various features disclosed herein. For example,various embodiments may include up to eight or more—any suitablenumber—of tuners 915 to facilitate embodiments of the presentdisclosure. It should be understood that the various components of STB900 may be implemented using hardware, firmware, software, and/or somecombination thereof.

Processors 910 may include one or more general-purpose processorsconfigured to perform processes such as tuning to a particular channel,displaying the EPG, and/or receiving and processing input from a user.Processors 910 may include one or more special purpose processors. Forexample, processors 910 may include one or more processors dedicated todecoding video signals from a particular format, such as MPEG, foroutput and display on a television and for performing decryption. Itshould be understood that the functions performed by various modules ofFIG. 9 may be performed using one or more processors. As such, forexample, functions of descrambling engine 965 or stream data controller960 may be performed by processor 910.

Tuners 915 may be used to tune to television channels, such astelevision channels transmitted via satellite or cable. Each tunercontained in tuners 915 may be capable of receiving and processing asingle stream of data from a satellite transponder (or a cable RFchannel) at a given time. As such, a single tuner may tune to a singletransponder (or cable RF channel). In certain embodiments, one tuner maybe used to tune to a television channel on a first transponder of afirst satellite for display using a television, while another tuner maybe used to tune to a television channel on a second transponder of thefirst satellite or a different satellite for recording and viewing atsome other time. If multiple television channels transmitted on the sametransponder stream are desired, a single tuner of tuners 915 may be usedto receive the signal containing the multiple television channels forpresentation and/or recording.

Transponder signals selected by tuners 915 may be demodulated by one ormore demodulators 954. The number of demodulators 954 may correspond tothe number of tuners 915 in certain embodiments. Signals associated withthe various stages preceding the one or more demodulators 954 mayinclude a combination of an information-carrying signal and a sinusoidalcarrier signal. Prior to transmission from the uplink station 110, theinformation-carrying signal may modulate a sinusoidal carrier signal toform the uplink signal that is transmitted to the satellite 130. Thesignal received by the demodulators 954 may represent a frequencytranslated version of the original uplink signal. One or moredemodulators 954 may perform an operation that is substantially aninverse of the modulation operation that occurred at the uplink station110. The demodulator 954 may remove the sinusoidal carrier signal andmay output the information carrying signal as a baseband signal. Inaddition, the demodulators 954 or other module may perform an errorcorrection and packet synchronization functions. Output from thedemodulators 954 may be directed to demultiplexer(s) 955, the processors915, and/or any other suitable component. In certain embodiments, theSTB 900 may be configured to tune and demodulate data from multipletransponders simultaneously. For example without limitation, the STB 900may be configured to tune and demodulate data from up to eight or moretransponders simultaneously.

The stream data controller 960 may be configured for facilitating one ormore satellite data distribution schemes, in accordance with certainembodiments of the present disclosure. The stream data controller 960may be configured to manage data that has been separated, replicated,and/or distributed in two or more received data streams. The functionsof the stream data controller 960 may be implemented in software and/orhardware in various embodiments. In various embodiments, the set-top box900 and/or the stream data controller 960 may include any device or setof devices configured to compute, process, organize, categorize,qualify, send, receive, retrieve, generate, convey, store, display,present, detect, handle, and/or use any form of information and/or datasuitable for embodiments described herein. The stream data controller960 may receive digital streams containing the video, audio, and otherdata corresponding to the transponder data streams. In some embodiments,the stream data controller 960 may access data and stage the data forfurther processing by other components of the set-top box 900. In someembodiments, the stream data controller 960 may buffer staged data inthe storage medium 925. In some embodiments, the stream data controller960 may convey data to the demultiplexer(s) 955.

In some embodiments, the stream data controller 960 may be configured todetect if a data loss has occurred. In some embodiments, the stream datacontroller 960 may confirm whether an expected transponder data stream,an expected television channel, and/or expected data has beensuccessfully received by the set-top box 900. In the event of anunsuccessful reception, the stream data controller 960 may identify thecondition so that a message may be transmitted to the television serviceprovider system 110, for example, via a processor 910 and the networkinterface 920.

In some embodiments, the stream data controller 960 may identify aspecific data distribution scheme according to which transponder datastreams have been sent and may process received data according to theidentified data distribution scheme. In some embodiments, a datadistribution scheme may be implemented as a default, and the stream datacontroller 960 may process received data according to the defaultscheme. In some embodiments, where the television service providersystem 110 may indicate to the set-top box 900 a satellite 130,transponder, and/or data distribution scheme, the stream data controller960 may be configured to process received at least partially based onthe indication.

In some embodiments, the stream data controller 960 may determinewhether a replicated transponder data stream and/or a replicated segmentof a transponder data stream is needed. The stream data controller 960may identify, select, discard, mark, buffer, convey, and/or otherwiseprocess any received replicated data. In some embodiments, the streamdata controller 960 may process data that has been segmented acrossdifferent streams according to the sequential and/or logical order inwhich the data has been segmented. In some embodiments, the stream datacontroller 960 may check segmented data received via differenttransponder data streams for proper sequencing. In some embodiments, thestream data controller 960 may filter replicated data received via oneor more separate data streams. If the replicated data is not needed, thestream data controller 960 may discard it. If the replicated data isneeded, the stream data controller 960 may process the data to supplyneeded data.

In some embodiments, the stream data controller 960 may identify,select, discard, mark, buffer, convey, and/or otherwise process anyreceived redundancy information. In some embodiments, the stream datacontroller 960 may use redundancy information to recover lost data. Thestream data controller 960 may recreate the lost data based on theredundancy information so that a full data set is available. The streamdata controller 960 may be configured to employ any suitable techniqueto use redundancy information. For example without limitation, where theredundancy information may be based on parity, the stream datacontroller 960 may combine the received data with parity data toreconstruct the missing data using the Boolean XOR function.

In some embodiments, as depicted, the stream data controller 960 may beemployed subsequently to certain components, such as the demodulators954; in alternative embodiments, the stream data controller 960 may beemployed antecedently to certain components, such as the demodulators954.

Network interface 920 may be used to communicate via an alternatecommunication channel with a television service provider. For example,the primary communication channel may be via satellite (which may beunidirectional to the STB) and the alternate communication channel(which may be bidirectional) may be via a network, such as the Internet.Referring back to FIG. 1, STB 150 may be able to communicate withtelevision service provider system 110 via a network, such as theInternet. This communication may be bidirectional: data may betransmitted from STB 150 to television service provider system 110 andfrom television service provider system 110 to STB 150. Referring backto FIG. 9, network interface 920 may be configured to communicate viaone or more networks, such as the Internet, to communicate withtelevision service provider system 110 of FIG. 1. Information may betransmitted and/or received via network interface 920.

Storage medium 925 may represent one or more non-transitory computerreadable storage media. Storage medium 925 may include memory and/or ahard drive. Storage medium 925 may be used to store information receivedfrom one or more satellites and/or information received via networkinterface 920. Storage medium 925 may store information related to anEPG, NIT 940, and/or a DVR.

One or more audio/video decoders 933 may serve to convert encoded videoand audio into a format suitable for output to a display device. Forinstance, audio/video decoder 933 may receive MPEG video and audio fromstorage medium 925 or descrambling engine 965 to be output to atelevision. Audio/video decoder 933 may convert the MPEG video and audiointo a format appropriate to be displayed by a television or other formof display device and audio into a format appropriate to be output fromspeakers, respectively. The number of audio/video decoders 933 maycorrespond to the number of tuners 915 in certain embodiments.

Television interface 935 may serve to output a signal to a television(or another form of display device) in a proper format for display ofvideo and playback of audio. As such, television interface 935 mayoutput one or more television channels, stored television programmingfrom storage medium 925 (e.g., a DVR and/or information from an EPG) toa television for presentation. User interface 950 may include a remotecontrol (physically separate from STB 900) and/or one or more buttons onSTB 900 that allows a user to interact with STB 900.

A network information table (NIT) 940, as previously discussed withrespect to Table 1, may store information used by set-top box 900 toaccess various television channels. NIT 940 may be stored using storagemedium 925. Information used to populate NIT 940 may be received viasatellite (or cable) through tuners 915 and/or may be received vianetwork interface 920 from the television service provider. As such,information present in NIT 940 may be periodically updated. NIT 940 maybe locally-stored by STB 900 using storage medium 925. NIT 940 may beperiodically updated by a television service provider. As such,television channels may be reassigned to different satellites and/ortransponders, and STB 900 may be able to handle this reassignment aslong as NIT 940 is updated. Whether a user directly tunes to atelevision channel or a DVR tunes to a first television channel, NIT 940may be used to determine the satellite, transponder, ECM PID (packetidentifier), audio PID, and video PID.

Referring back to tuners 915, television channels received via satellite(or cable) may contain at least some scrambled data. Packets of audioand video may be scrambled to prevent unauthorized users (e.g.,nonsubscribers) from receiving television programming without paying thetelevision service provider. When a tuner of tuners 915 is receivingdata from a particular transponder of a satellite, the transponderstream may be a series of data packets corresponding to multipletelevision channels. Each data packet may contain a packet identifier(PID), which in combination with NIT 940, can be determined to beassociated with particular television channel. Particular data packets,referred to as entitlement control messages (ECMs), may be periodicallytransmitted. ECMs may be encrypted; STB 900 may use smart card 962 todecrypt ECMs. Decryption of an ECM may only be possible if the user hasauthorization to access the particular television channel associatedwith the ECM. When an ECM is received by demultiplexer 955 and the ECMis determined to correspond to a television channel being stored and/ordisplayed, the ECM may be provided to smart card 962 for decryption.

When smart card 962 receives an encrypted ECM from demultiplexer 955,smart card 962 may decrypt the ECM to obtain some number of controlwords. In some embodiments, from each ECM received by smart card 962,two control words are obtained. In some embodiments, when smart card 962receives an ECM, it compares the ECM to the previously received ECM. Ifthe two ECMs match, the second ECM is not decrypted because the samecontrol words would be obtained. In other embodiments, each ECM receivedby smart card 962 is decrypted; however, if a second ECM matches a firstECM, the outputted control words will match; thus, effectively, thesecond ECM does not affect the control words output by smart card 962.When an ECM is received by smart card 962, it may take a period of timefor the ECM to be decrypted to obtain the control words. As such, aperiod of time, such as 9 seconds, may elapse before the control wordsindicated by the ECM can be obtained. Smart card 962 may be permanentlypart of STB 900 or maybe configured to be inserted and removed from STB900.

Demultiplexer(s) 955 may be configured to filter data packets based onPIDs. For example, if a transponder data stream includes multipletelevision channels, data packets corresponding to a television channelthat is not desired to be stored or displayed by the user, may bediscarded by demultiplexer 955. As such, only data packets correspondingto the one or more television channels desired to be stored and/ordisplayed may be passed to either descrambling engine 965 or smart card962; other data packets may bediscarded. For each channel, a stream ofvideo packets, a stream of audio packets and/or a stream of ECM packetsmay be present, each stream identified by a PID. In some embodiments, acommon ECM stream may be used for multiple television channels.Additional data packets corresponding to other information, such asupdates to NIT 940, may be appropriately routed by demultiplexer 955.

Descrambling engine(s) 965 may use the control words output by smartcard 962 in order to descramble video and/or audio corresponding totelevision channels for storage and/or presentation. Video and/or audiodata contained in the transponder data stream received by tuners 915 maybe scrambled. The video and/or audio may be descrambled by descramblingengine 965 using a particular control word. Which control word output bysmart card 962 to be used for successful descrambling may be indicatedby a scramble control identifier present within the data packetcontaining the scrambled video or audio. Descrambled video and/or audiomay be output by descrambling engine 965 to storage medium 925 forstorage (via a DVR) and/or to audio/video decoder 933 for output to atelevision or other presentation equipment via television interface 935.

For simplicity, STB 900 of FIG. 9 has been reduced to a block diagram,commonly known parts, such as a power supply, have been omitted.Further, some routing between the various modules of STB 900 has beenillustrated. Such illustrations are for exemplary purposes only. Twomodules not being directly or indirectly connected does not indicate themodules cannot communicate. Rather, connections between modules of theSTB 900 are intended only to indicate possible common data routing. Itshould be understood that the modules of STB 900 may be combined into asmaller number of modules or divided into a greater number of modules.Further, the components of STB 900 may be part of another device, suchas built into a television. Also, while STB 900 may be used to receive,store, and present television channels received via a satellite, itshould be understood that similar components may be used to receive,store, and present television channels via a cable network.

A computer system as illustrated in FIG. 10 may be incorporated as partof the previously described devices, such as the content receiver (e.g,set top box). FIG. 10 provides a schematic illustration of oneembodiment of a computer system 1000 that can perform the methodsprovided by various embodiments. It should be noted that FIG. 10 ismeant only to provide a generalized illustration of various components,any or all of which may be utilized as appropriate. FIG. 10, therefore,broadly illustrates how individual system elements may be implemented ina relatively separated or relatively more integrated manner.

The computer system 1000 is shown comprising hardware elements that canbe electrically coupled via a bus 1005 (or may otherwise be incommunication, as appropriate). The hardware elements may include one ormore processors 1010, including without limitation one or moregeneral-purpose processors and/or one or more special-purpose processors(such as digital signal processing chips, graphics accelerationprocessors, and/or the like); one or more input devices 1015, which caninclude without limitation a mouse, a keyboard, and/or the like; and oneor more output devices 1020, which can include without limitation adisplay device, a printer, and/or the like.

The computer system 1000 may further include (and/or be in communicationwith) one or more non-transitory storage devices 1025, which cancomprise, without limitation, local and/or network accessible storage,and/or can include, without limitation, a disk drive, a drive array, anoptical storage device, a solid-state storage device, such as a randomaccess memory (“RAM”), and/or a read-only memory (“ROM”), which can beprogrammable, flash-updateable, and/or the like. Such storage devicesmay be configured to implement any appropriate data stores, includingwithout limitation, various file systems, database structures, and/orthe like.

The computer system 1000 might also include a communications subsystem1030, which can include without limitation a modem, a network card(wireless or wired), an infrared communication device, a wirelesscommunication device, and/or a chipset (such as a Bluetooth™ device, an1002.11 device, a WiFi device, a WiMax device, cellular communicationfacilities, etc.), and/or the like. The communications subsystem 1030may permit data to be exchanged with a network (such as the networkdescribed below, to name one example), other computer systems, and/orany other devices described herein. In many embodiments, the computersystem 1000 will further comprise a working memory 1035, which caninclude a RAM or ROM device, as described above.

The computer system 1000 also can comprise software elements, shown asbeing currently located within the working memory 1035, including anoperating system 1040, device drivers, executable libraries, and/orother code, such as one or more application programs 1045, which maycomprise computer programs provided by various embodiments, and/or maybe designed to implement methods, and/or configure systems, provided byother embodiments, as described herein. Merely by way of example, one ormore procedures described with respect to the method(s) discussed abovemight be implemented as code and/or instructions executable by acomputer (and/or a processor within a computer); in an aspect, then,such code and/or instructions can be used to configure and/or adapt ageneral purpose computer (or other device) to perform one or moreoperations in accordance with the described methods.

A set of these instructions and/or code might be stored on anon-transitory computer-readable storage medium, such as thenon-transitory storage device(s) 1025 described above. In some cases,the storage medium might be incorporated within a computer system, suchas computer system 1000. In other embodiments, the storage medium mightbe separate from a computer system (e.g., a removable medium, such as acompact disc), and/or provided in an installation package, such that thestorage medium can be used to program, configure, and/or adapt a generalpurpose computer with the instructions/code stored thereon. Theseinstructions might take the form of executable code, which is executableby the computer system 1000 and/or might take the form of source and/orinstallable code, which, upon compilation and/or installation on thecomputer system 1000 (e.g., using any of a variety of generallyavailable compilers, installation programs, compression/decompressionutilities, etc.), then takes the form of executable code.

It will be apparent to those skilled in the art that substantialvariations may be made in accordance with specific requirements. Forexample, customized hardware might also be used, and/or particularelements might be implemented in hardware, software (including portablesoftware, such as applets, etc.), or both. Further, connection to othercomputing devices such as network input/output devices may be employed.

As mentioned above, in one aspect, some embodiments may employ acomputer system (such as the computer system 1000) to perform methods inaccordance with various embodiments of the invention. According to a setof embodiments, some or all of the procedures of such methods areperformed by the computer system 1000 in response to processor 1010executing one or more sequences of one or more instructions (which mightbe incorporated into the operating system 1040 and/or other code, suchas an application program 1045) contained in the working memory 1035.Such instructions may be read into the working memory 1035 from anothercomputer-readable medium, such as one or more of the non-transitorystorage device(s) 1025. Merely by way of example, execution of thesequences of instructions contained in the working memory 1035 mightcause the processor(s) 1010 to perform one or more procedures of themethods described herein.

The terms “machine-readable medium” and “computer-readable medium,” asused herein, refer to any medium that participates in providing datathat causes a machine to operate in a specific fashion. In an embodimentimplemented using the computer system 1000, various computer-readablemedia might be involved in providing instructions/code to processor(s)1010 for execution and/or might be used to store and/or carry suchinstructions/code. In many implementations, a computer-readable mediumis a physical and/or tangible storage medium. Such a medium may take theform of a non-volatile media or volatile media. Non-volatile mediainclude, for example, optical and/or magnetic disks, such as thenon-transitory storage device(s) 1025. Volatile media include, withoutlimitation, dynamic memory, such as the working memory 1035.

Common forms of physical and/or tangible computer-readable mediainclude, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, or any other magnetic medium, a CD-ROM, any other opticalmedium, punchcards, papertape, any other physical medium with patternsof holes, a RAM, a PROM, EPROM, a FLASH-EPROM, any other memory chip orcartridge, or any other medium from which a computer can readinstructions and/or code.

Various forms of computer-readable media may be involved in carrying oneor more sequences of one or more instructions to the processor(s) 1010for execution. Merely by way of example, the instructions may initiallybe carried on a magnetic disk and/or optical disc of a remote computer.A remote computer might load the instructions into its dynamic memoryand send the instructions as signals over a transmission medium to bereceived and/or executed by the computer system 1000.

The communications subsystem 1030 (and/or components thereof) generallywill receive signals, and the bus 1005 then might carry the signals(and/or the data, instructions, etc. carried by the signals) to theworking memory 1035, from which the processor(s) 1010 retrieves andexecutes the instructions. The instructions received by the workingmemory 1035 may optionally be stored on a non-transitory storage device1025 either before or after execution by the processor(s) 1010.

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and/or various stages may be added, omitted, and/or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims. In some alternativeembodiments, the entirety of one or more programs of interest may berecorded, and highlights within each program may be marked so that theuser may directly skip to one highlight at a time.

Specific details are given in the description to provide a thoroughunderstanding of example configurations (including implementations).However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations will provide those skilled in the art with an enablingdescription for implementing described techniques. Various changes maybe made in the function and arrangement of elements without departingfrom the spirit or scope of the disclosure.

Also, configurations may be described as a process which is depicted asa flow diagram or block diagram. Although each may describe theoperations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be rearranged. A process may have additional steps notincluded in the figure. Furthermore, examples of the methods may beimplemented by hardware, software, firmware, middleware, microcode,hardware description languages, or any combination thereof. Whenimplemented in software, firmware, middleware, or microcode, the programcode or code segments to perform the necessary tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the invention.Also, a number of steps may be undertaken before, during, or after theabove elements are considered. Accordingly, the above description doesnot bound the scope of the claims.

What is claimed is:
 1. A media device configured for receiving data fromone or more satellites, the media device comprising: one or moreprocessors; and one or more storage devices coupled to the one or moreprocessors and configured to store instructions to cause the one or moreprocessors to: tune to a first data stream transmitted over a firstsatellite transponder; wherein the first data stream was derived fromsource data based at least in part on a data distribution scheme,wherein the data distribution scheme comprises distributing at leastportions of the source data using the first data stream; process atleast a first portion of the first data stream to store and/or outputcontent for presentation; and avoid or recover from a loss of at least asecond portion of the first data stream at least in part by tuning to asecond data stream identified based at least in part on a networkinformation table stored in at least one of the one or more storagedevices, wherein the network information table comprises satelliteassignment information and/or transponder assignment information.
 2. Themedia device configured for receiving data from one or more satellitesof claim 1, wherein the satellite assignment information and/or thetransponder assignment information indicates television channelassignments to satellites and/or transponders, and the one or moreprocessors uses the network information table to avoid or recover fromlosses corresponding to television channels.
 3. The media deviceconfigured for receiving data from one or more satellites of claim 2,the instructions to further cause the one or more processors to: processone or more communications received via a network from a remote system;and update the network information table based at least in part on theone or more communications.
 4. The media device configured for receivingdata from one or more satellites of claim 3, wherein the updatingcorresponds to one or more reassignments of the television channelassignments to one or more different satellites and/or differenttransponders.
 5. The media device configured for receiving data from oneor more satellites of claim 1, wherein the avoiding or recovering fromthe loss of the at least the second portion of the first data stream isfurther based at least in part on identifying a second data distributionscheme.
 6. The media device configured for receiving data from one ormore satellites of claim 1, wherein the second data stream comprises areplicative portion that is replicative of the second portion of thefirst data stream, and the avoiding or recovering from the loss of atleast the second portion of the first data stream is based at least inpart on the replicative portion.
 7. The media device configured forreceiving data from one or more satellites of claim 1, wherein the mediadevice: uses a first tuner to tune to the first data stream transmittedover the first satellite transponder; and uses a second tuner to tune tothe second data stream transmitted over a second satellite transponder.8. The media device configured for receiving data from one or moresatellites of claim 7, wherein the media device: identifies the secondtuner as being idle prior to using the second tuner to tune to thesecond data stream transmitted over the second satellite transponder. 9.A media device configured for receiving data from one or moresatellites, the media device comprising: one or more processors; and oneor more storage devices coupled to the one or more processors andconfigured to store instructions to cause the one or more processors to:tune, by a tuner of the media device, to a first data stream transmittedover a first satellite transponder; wherein the first data stream wasderived from source data based at least in part on a data distributionscheme, wherein the data distribution scheme comprises distributing atleast portions of the source data using the first data stream; processat least a first portion of the first data stream to store and/or outputcontent for presentation; and avoid or recover from a loss of at least asecond portion of the first data stream at least in part by: tuning, bythe tuner of the media device, to a second data stream transmitted overa second satellite transponder based at least in part on one or morecommunications via a network to and/or from a remote system; andprocessing at least a second data segment of the second data stream, thesecond portion of the first data stream comprising a first data segment.10. The media device configured for receiving data from one or moresatellites of claim 9, wherein the second data segment of the seconddata stream is replicative of the first data segment of the first datastream.
 11. The media device configured for receiving data from one ormore satellites of claim 9, wherein the instructions further cause theone or more processors to: update a network information table stored inat least one of the one or more storage devices based at least in parton the one or more communications from the remote system, whereinnetwork information table comprises satellite assignment informationand/or transponder assignment information.
 12. The media deviceconfigured for receiving data from one or more satellites of claim 11,wherein the updating corresponds to one or more reassignments of thetelevision channel assignments to one or more different satellitesand/or different transponders.
 13. The media device configured forreceiving data from one or more satellites of claim 9, wherein theavoiding or recovering from the loss of the at least the second portionof the first data stream is further based at least in part onidentifying a second data distribution scheme.
 14. One or morenon-transitory, processor-readable media storing instructions that, whenexecuted by one or more processors of a media device, cause the one ormore processors to: cause the media device to tune to a first datastream transmitted over a first satellite transponder; wherein the firstdata stream was derived from source data based at least in part on adata distribution scheme, wherein the data distribution scheme comprisesdistributing at least portions of the source data using the first datastream; process at least a first portion of the first data stream tostore and/or output content for presentation; and cause the media deviceto avoid or recover from a loss of at least a second portion of thefirst data stream at least in part by tuning to a second data streamidentified based at least in part on a network information table storedin one or more storage devices, wherein the network information tablecomprises satellite assignment information and/or transponder assignmentinformation.
 15. The one or more non-transitory, processor-readablemedia of claim 14, wherein the satellite assignment information and/orthe transponder assignment information indicates television channelassignments to satellites and/or transponders, and the one or moreprocessors uses the network information table to avoid or recover fromlosses corresponding to television channels.
 16. The one or morenon-transitory, processor-readable media of claim 15, the instructionsto further cause the one or more processors to: process one or morecommunications received via a network from a remote system; and updatethe network information table based at least in part on the one or morecommunications.
 17. The one or more non-transitory, processor-readablemedia of claim 16, wherein the updating corresponds to one or morereassignments of the television channel assignments to one or moredifferent satellites and/or different transponders.
 18. The one or morenon-transitory, processor-readable media of claim 14, wherein theavoiding or recovering from the loss of the at least the second portionof the first data stream is further based at least in part onidentifying a second data distribution scheme.
 19. The one or morenon-transitory, processor-readable media of claim 14, wherein the seconddata stream comprises a replicative portion that is replicative of thesecond portion of the first data stream, and the avoiding or recoveringfrom the loss of at least the second portion of the first data stream isbased at least in part on the replicative portion.
 20. The one or morenon-transitory, processor-readable media of claim 14, the instructionsto further cause the one or more processors to: identify a tuner asbeing idle and cause the media device to use the tuner to tune to thesecond data stream transmitted over a second satellite transponder.